release: gloas support - #69
Conversation
…lient with github.com/pk910/go-eth2-client for temporary support while awaiting upstream merge
…ty and maintainability
…ability and security chore(go.sum): synchronize checksum file with updated dependencies in go.mod
…0324190457-8f361e342cb9 to obtain the latest fixes and improvements
Replaces the pk910 replace directive with a direct dependency on github.com/ethpandaops/go-eth2-client v0.0.1, and updates all imports from github.com/attestantio/go-eth2-client to the ethpandaops fork. Also adds spec.DataVersionHeze to ForkOrder (now exposed by v0.0.1). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…-client chore(deps): migrate to ethpandaops/go-eth2-client v0.0.1
…test versions for better stability and performance
… clarity and maintainability refactor(metrics): replace hard-coded label strings with constants to reduce duplication and minimize errors
feat: ePBS SSE subs
* master: chore: swap go-eth2-client to ethpandaops fork v0.1.2 (#72)
…rator-supplied beacon node config URLs for clarity and maintainability
Bumps the go-ethereum pin from bal-devnet-3 commit 8f361e342cb9 (2026-03-23) to bal-devnet-6 HEAD 73944e329925 (2026-05-07) — the EL branch deployed on glamsterdam-devnet-3 per ethpandaops/glamsterdam-devnets ansible inventory. bal-devnet-6 contains the latest BAL (EIP-7928) refinements plus Amsterdam slot-number support (EIP-7843) needed for Gloas observability.
* master: publish typed fast_confirmation events recognize fast_confirmation event topic
* master: chore(deps): bump the actions group across 1 directory with 4 updates chore: add .gitignore file to exclude unnecessary files from version control refactor(metrics): replace hardcoded metric label strings with constants for better maintainability chore(api): remove inline comment suppressing gosec linter warning for consistency in code formatting chore(workflows): update golangci-lint version from 2.10.1 to 2.12.2 for improved linting functionality chore(workflows): change go-version from fixed version to version-file for better dependency management chore(go.mod): update Go version from 1.25.1 to 1.26.1 to align with current standards chore(go.sum): update dependency hashes after changing Go version and golangci-lint version
* master:
style(tests): remove unnecessary empty lines in test files for better readability and consistency
refactor: replace map[string]interface{} type with map[string]any for improved type safety in function signatures refactor: update for-loops to use range for better readability in tests and when iterating refactor: simplify sleep duration calculation by using a min function for clarity in logic refactor: utilize slices.Contains for checking topic existence in EventTopics refactor: replace interface{} with any in JSON unmarshalling for better type clarity in duration handling refactor: enhance goroutine handling in tests by adopting range in loops to improve readability
The EIP-7732 execution_payload and execution_payload_gossip SSE events carry a flat payload summary, not a full SignedExecutionPayloadEnvelope. go-eth2-client now decodes them into api/v1.ExecutionPayloadEvent; route that type through the broker instead of the envelope so the handlers actually fire (previously every event failed to type-assert and was dropped). Bumps go-eth2-client to the flat-event build. Claude-Session: https://claude.ai/code/session_014KRVmYwRSsK5pFbghweigM
feat: deliver flat execution_payload / _gossip events
Wires the gloas head_v2 SSE topic through the standard path (topic constant, dispatch, broker publish, OnHeadV2 subscriber, Node interface) and bumps go-eth2-client to the build that parses the event. The topic stays out of the default subscription list like the other gloas topics — consumers opt in via their topic override. Claude-Session: https://claude.ai/code/session_019cbhUv62kwFTKQD5aM8FGC
feat: subscribe to and deliver head_v2 events
Adds RawExecutionPayloadEnvelope to the consensus API client and
FetchRawExecutionPayloadEnvelope to the Node interface, exposing
GET /eth/v1/beacon/execution_payload_envelopes/{block_id} (gloas onwards)
in JSON or SSZ depending on the requested content type.
Claude-Session: https://claude.ai/code/session_012CnMNMdPisWGmvKhKzj1ii
…velope feat: fetch raw signed execution payload envelopes
feat(beacon): add streaming raw API responses
Relands the raw-streaming work from #81: OpenRawBeaconState, OpenRawBlock and OpenRawExecutionPayloadEnvelope returning *api.RawResponse (body plus the metadata needed to tell a complete transfer from a truncated one), a dedicated per-node transport with connection and in-flight request caps, typed HTTP status errors, and the raw response leak counter. #81 was merged prematurely and reverted in 8d66ce6; this restores the same tree as new commits so it can go through review properly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Dismissing my own approval: it was not a review. A bug in the reviewer meant it could not compute this PR's diff (the base ref was never fetched into origin/), so the model was handed an empty change set, found nothing, and that was recorded as "clean" and approved. It never read this code. Fixed and deployed; the next push to this PR gets a real review.
feat(beacon): add streaming raw API responses
SummaryThis release of the gloas support branch adds raw execution-payload-envelope endpoints, streaming OpenRaw* responses with a bounded-concurrency HTTP client (32 slots/connections, leak detection via runtime.AddCleanup and hybrid observer metrics), head_v2 and EIP-7732 ePBS SSE events, and dependency bumps (go-ethereum, go-eth2-client — both OSV-clean). The streaming/limiter code is defensive and exhaustively tested; I found no blockers, only one small lifecycle asymmetry. Issues
Reviewed @ |
No description provided.